/**
 * 定义 用户管理 相关的接口类型
 */

export interface ResponseData {
  code: number
  message: string
  ok: boolean
}

/**
 * 用户信息的类型
 */
export interface UserInfo {
  id?: number | string
  createTime?: string
  updateTime?: string
  username?: string
  password?: string
  name?: string
  phone?: string | null
  roleName?: string | null
}

/**
 * 用户列表类型
 */
export type Records = UserInfo[]

/**
 * 获取用户列表接口返回的数据类型
 */
export interface UserListResponseData extends ResponseData {
  data: {
    records: Records
    total: number
    pages: number
    size: number
    current: number
  }
}

/**
 * 角色类型
 */
export interface RoleInfo {
  id?: number | string
  createTime?: string
  updateTime?: string
  roleName?: string
  remark?: string | null
}

/**
 * 角色列表类型
 */
export type AllRole = RoleInfo[]

/**
 * 获取角色列表接口返回的数据类型
 */
export interface RoleListResponseData extends ResponseData {
  data: {
    assignRoles: AllRole
    allRolesList: AllRole
  }
}

/**
 * 分配角色所需的数据的类型
 */
export interface AssignRoleData {
  userId: number | string
  roleIdList: number[]
}
